package com.example.myblog.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.myblog.entity.MPost;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.myblog.vo.PostVo;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 公众号：java思维导图
 * @since 2020-05-20
 */
public interface MPostService extends IService<MPost> {

    /**
     *
     * @param page:第几页
     * @param categoryId：
     * @param userId
     * @param level：置顶级数
     * @param recommend：是否精选
     * @param order：排序方式
     * @return
     */
    IPage paging(Page page, Long categoryId, Long userId, Integer level, Boolean recommend, String order);

    PostVo selectOnePost(QueryWrapper<MPost> wrapper);

    void initWeekRank();

    /**
     * 更新阅读数量，更细redis的数据
     * @param postId
     * @param isIncr
     */
    void incrCommentCountAndUnionForWeekRank(long postId, boolean isIncr);

    void putViewCount(PostVo vo);
}
